x11: Move code where it belongs
authorBenjamin Otte <otte@redhat.com>
Thu, 3 Jun 2021 02:42:23 +0000 (04:42 +0200)
committerBenjamin Otte <otte@redhat.com>
Thu, 22 Jul 2021 14:06:05 +0000 (16:06 +0200)
Instead of the display telling the screen to tell the visuals to tell
the display to initialize itself, just init the display directly.

What a concept.

gdk/x11/gdkdisplay-x11.c
gdk/x11/gdkprivate-x11.h
gdk/x11/gdkscreen-x11.c
gdk/x11/gdkscreen-x11.h
gdk/x11/gdkvisual-x11.c

index 703219a912ea854a8f682e9487e2067d7ce135e9..0d1f61d1dfc98b82864c329bde068926b62c1e02 100644 (file)
@@ -1335,22 +1335,6 @@ set_sm_client_id (GdkDisplay  *display,
                      gdk_x11_get_xatom_by_name_for_display (display, "SM_CLIENT_ID"));
 }
 
-void
-gdk_display_setup_window_visual (GdkDisplay *display,
-                                 int         depth,
-                                 Visual     *visual,
-                                 Colormap    colormap,
-                                 gboolean    rgba)
-{
-  GdkX11Display *display_x11 = GDK_X11_DISPLAY (display);
-
-  display_x11->window_depth = depth;
-  display_x11->window_visual = visual;
-  display_x11->window_colormap = colormap;
-
-  gdk_display_set_rgba (display, rgba);
-}
-
 /**
  * gdk_x11_display_open:
  * @display_name: (nullable): name of the X display.
@@ -1416,7 +1400,27 @@ gdk_x11_display_open (const char *display_name)
 #endif
 
   /* initialize the display's screens */ 
-  display_x11->screen = _gdk_x11_screen_new (display, DefaultScreen (display_x11->xdisplay), TRUE);
+  display_x11->screen = _gdk_x11_screen_new (display, DefaultScreen (display_x11->xdisplay));
+
+  if (display_x11->screen->rgba_visual)
+    {
+      Visual *xvisual = GDK_X11_VISUAL (display_x11->screen->rgba_visual)->xvisual;
+
+      display_x11->window_depth = display_x11->screen->rgba_visual->depth;
+      display_x11->window_visual = xvisual;
+      display_x11->window_colormap = XCreateColormap (xdisplay,
+                                                      DefaultRootWindow (xdisplay),
+                                                      xvisual,
+                                                      AllocNone);
+      gdk_display_set_rgba (display, TRUE);
+    }
+  else
+    {
+      display_x11->window_depth = DefaultDepth (xdisplay, DefaultScreen (xdisplay)),
+      display_x11->window_visual = DefaultVisual (xdisplay, DefaultScreen (xdisplay));
+      display_x11->window_colormap = DefaultColormap (xdisplay, DefaultScreen (xdisplay));
+      gdk_display_set_rgba (display, FALSE);
+    }
 
   /* We need to initialize events after we have the screen
    * structures in places
@@ -2010,7 +2014,7 @@ _gdk_x11_display_screen_for_xrootwin (GdkDisplay *display,
   if (gdk_x11_display_error_trap_pop (display) || !result)
     return NULL;
 
-  screen = _gdk_x11_screen_new (display, XScreenNumberOfScreen (attrs.screen), FALSE);
+  screen = _gdk_x11_screen_new (display, XScreenNumberOfScreen (attrs.screen));
 
   display_x11->screens = g_list_prepend (display_x11->screens, screen);
 
index 97155106a508c4ea1bbe4248b2950acdd52f75dc..5a0f565f558746ef1bc660232861e3d1e2e69362 100644 (file)
@@ -55,11 +55,6 @@ typedef GdkFilterReturn (*GdkFilterFunc) (const XEvent *xevent,
 void _gdk_x11_error_handler_push (void);
 void _gdk_x11_error_handler_pop  (void);
 
-void          gdk_display_setup_window_visual            (GdkDisplay     *display,
-                                                          int             depth,
-                                                          Visual         *visual,
-                                                          Colormap        colormap,
-                                                          gboolean        rgba);
 int           gdk_x11_display_get_window_depth           (GdkX11Display  *display);
 Visual *      gdk_x11_display_get_window_visual          (GdkX11Display  *display);
 Colormap      gdk_x11_display_get_window_colormap        (GdkX11Display  *display);
index 9ab16f6db9b422dc69926594fcb5ac7b49395317..d06ecfb05c5c7384e43456579387664eb9de97d7 100644 (file)
@@ -866,8 +866,7 @@ init_multihead (GdkX11Screen *screen)
 
 GdkX11Screen *
 _gdk_x11_screen_new (GdkDisplay *display,
-                    int         screen_number,
-                     gboolean    setup_display)
+                    int         screen_number)
 {
   GdkX11Screen *x11_screen;
   GdkX11Display *display_x11 = GDK_X11_DISPLAY (display);
@@ -898,7 +897,7 @@ _gdk_x11_screen_new (GdkDisplay *display,
   init_randr_support (x11_screen);
   init_multihead (x11_screen);
 
-  _gdk_x11_screen_init_visuals (x11_screen, setup_display);
+  _gdk_x11_screen_init_visuals (x11_screen);
 
   return x11_screen;
 }
index cba79af75d9c6639001789067512e8e409f84559..2965385d2fbda978e36f272dedb619bbd56db36c 100644 (file)
@@ -94,8 +94,7 @@ struct _GdkX11ScreenClass
 
 GType       _gdk_x11_screen_get_type (void);
 GdkX11Screen *_gdk_x11_screen_new           (GdkDisplay   *display,
-                                             int           screen_number,
-                                             gboolean      setup_display);
+                                             int           screen_number);
 
 void _gdk_x11_screen_window_manager_changed (GdkX11Screen *screen);
 void _gdk_x11_screen_size_changed           (GdkX11Screen *screen,
@@ -120,8 +119,7 @@ _gdk_x11_screen_get_xft_setting             (GdkX11Screen *screen,
                                              const char   *name,
                                              GValue       *value);
 
-void _gdk_x11_screen_init_visuals           (GdkX11Screen *screen,
-                                             gboolean      setup_display);
+void _gdk_x11_screen_init_visuals           (GdkX11Screen *screen);
 
 G_END_DECLS
 
index 1e48e477a7ba1dba217cfef4f30e6efd20822693..0a6ec4addad9f79d2a072d616fa6f8855743908f 100644 (file)
@@ -50,8 +50,7 @@ gdk_x11_visual_class_init (GdkX11VisualClass *class)
 }
 
 void
-_gdk_x11_screen_init_visuals (GdkX11Screen *x11_screen,
-                              gboolean      setup_display)
+_gdk_x11_screen_init_visuals (GdkX11Screen *x11_screen)
 {
   static const int possible_depths[8] = { 32, 30, 24, 16, 15, 8, 4, 1 };
   static const GdkVisualType possible_types[6] =
@@ -254,33 +253,6 @@ _gdk_x11_screen_init_visuals (GdkX11Screen *x11_screen,
    * stereo and double buffering
    */
   gdk_x11_screen_update_visuals_for_glx (x11_screen);
-
-  if (setup_display)
-    {
-      if (x11_screen->rgba_visual)
-        {
-          Visual *xvisual = GDK_X11_VISUAL (x11_screen->rgba_visual)->xvisual;
-          Colormap colormap;
-          
-          colormap = XCreateColormap (x11_screen->xdisplay,
-                                      RootWindow (x11_screen->xdisplay, x11_screen->screen_num),
-                                      xvisual,
-                                      AllocNone);
-          gdk_display_setup_window_visual (GDK_SCREEN_DISPLAY (x11_screen),
-                                           x11_screen->rgba_visual->depth,
-                                           GDK_X11_VISUAL (x11_screen->rgba_visual)->xvisual,
-                                           colormap,
-                                           TRUE);
-        }
-      else
-        {
-          gdk_display_setup_window_visual (GDK_SCREEN_DISPLAY (x11_screen),
-                                           DefaultDepth (x11_screen->xdisplay, x11_screen->screen_num),
-                                           DefaultVisual (x11_screen->xdisplay, x11_screen->screen_num),
-                                           DefaultColormap (x11_screen->xdisplay, x11_screen->screen_num),
-                                           FALSE);
-        }
-    }
 }
 
 /*< private >